package com.zzg.springboot.annotation.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 
 * @ClassName:  GlobalExceptionController   
 * @Description: springMVC 全局异常注解
 * @author: 世纪伟图 -zzg
 * @date:   2018年11月5日 上午9:51:19   
 *     
 * @Copyright: 2018 www.digipower.cn 
 * 注意：本内容仅限于深圳市世纪伟图科技开发有限公司内部使用，禁止用于其他的商业目的
 */

@Controller
@RequestMapping("/api/springmvc/exception")
public class ExceptionController {
	/**
	 * springmvc 异常注解速查表
	 * @ExceptionHandler：注解到方法上，出现异常时会执行该方法
	 * @ControllerAdvice：使一个Contoller成为全局的异常处理类，类中用@ExceptionHandler方法注解的方法可以处理所有Controller发生的异常
	 */
	
	/**
	 * 
	 * @Title: exceptionOne   
	 * @Description: springMVC 全局异常测试  
	 * @param:       
	 * @return: void      
	 * @throws
	 */
	@RequestMapping(value="/exceptionOne", method={RequestMethod.GET})
	public void exceptionOne(){
		System.out.println(" @ControllerAdvice 全局异常测试 ");
		throw new RuntimeException();
	}
	
	/**
	 * 
	 * @Title: exceptionOne   
	 * @Description: springMVC 指定异常测试  
	 * @param:       
	 * @return: void      
	 * @throws
	 */
	@RequestMapping(value="/exceptionTwo", method={RequestMethod.GET})
	@ExceptionHandler({ NullPointerException.class })
	public void exceptionTwo(){
		System.out.println(" @ControllerAdvice 指定异常测试 ");
		throw new NullPointerException();
	}
	
}
